The present invention relates to the use of command and residual priorities for the control of loads. This invention is particularly useful in building automation control systems.
Building automation control systems are used for controlling air conditioning equipment, including chillers, fans, dampers, humidifiers, heating plants and the like, in larger buildings or building complexes. A typical building automation control system includes a central processor located in a control room and manned by a human operator and a plurality of air conditioning loads connected over a common communication channel to the central processor. Energy management program packages can be stored in the memory of the central processor for controlling the remote loads according to energy management routines.
Such routines can include a demand routine for turning loads on and off upon demand, a duty cycle routine for cycling loads on and off according to a duty cycle to reduce power consumption, an optimum start/stop routine for turning the air conditioning equipment off at an amount of time before non-occupancy to allow the temperature within the building to drift to a night setback temperature and to turn the equipment on in the morning an amount of time before occupancy to bring the temperature back to the desired level for occupancy, a zero energy band routine for providing neither heating nor cooling when the actual temperature within a zone is within a comfort range, and the like.
Since there are more than one routine which can control a load, it often happens that more than one routine will compete for the control of any given load, at any given time. It becomes apparent that, because of the competition between programs for control of loads, a mechanism must be established for determining which of the competing programs should be allowed to control the load.
One possible solution to this problem is to establish a priority hierarchy between the programs which are stored in the central processor such that the program having the highest priority among the programs competing for control of the load is the program selected to control the load. As a practical matter, there is always a routine or program presently controlling a load. Thus, when a new program wants to control a load, its priority must be compared to the priority of the program presently controlling the load. If the program wanting the control of the load has a priority higher than the priority of the program controlling the load, then the program wanting control is allowed to take over control of the load. However, if the program wanting control has a lower priority than the program controlling the load, the program controlling the load is allowed to continue to control the load.
In order to implement this solution, it is necessary to store the priority of the program currently controlling the load. Thus, if the program wanting control of the load has a lower priority than the priority of the program controlling the load, the priority of the program controlling the load is maintained in memory because control remains with the program having control. However, if the program wanting control of the load has a priority higher than the program currently controlling the load, then the program wanting control of the load is allowed to control the load and its priority is stored in memory. As can be seen from this operation, only programs having a priority higher than that stored in memory can control a load and only their priorities are then stored in memory. Thus, the stored priority keeps increasing until the highest priority program controls the load and lower priority programs are excluded. If a higher priority program no longer needs control of the load once its routine has been accomplished, lower priority programs cannot take over control of the load without some sort of special resetting operation to lower the priority stored in memory. The present invention solves this problem.